package Calculadora;
/***************************************************************
 *  Stack.java        
 *  Fecha: 17/07/12
 *  Carnet: 11033
 *  @param <E> Tipo de Objeto a Almacenar en la Pila.
 *  @author Juan Pablo Argueta Cortes
 *  Interfaz que modela los métodos de una Pila.
 ***************************************************************/
public interface Stack<E> 
{

    /**
     * Introduce un item a la Pila.
     * @param item Elemento a Ingresar
     */
    public void push(E item);
   // pre: 
   // post: item is added to stack
   // will be popped next if no intervening push
   
    /**
     * Devuelve y remueve el último elemento ingresado en la Pila.
     * @return
     */
    public E pop();
   // pre: stack is not empty
   // post: most recently pushed item is removed and returned
   
    /**
     * Devuelve el último elemento ingresado en la Pila.
     * @return
     */
    public E peek();
   // pre: stack is not empty
   // post: top value (next to be popped) is returned
   
   /**
    * Devuelve True si la Pila esta vacía, False de lo contrario.
    * @return
    */
   public boolean empty();
   // post: returns true if and only if the stack is empty
   
   /**
    * Devuelve el tamaño de la Pila.
    * @return
    */
   public int size();
   // post: returns the number of elements in the stack

}